#ifndef ISERIALIZER_HPP
#define ISERIALIZER_HPP

namespace Serialization
{
  template <typename T>
  class ISerializer {
  public:
    virtual const ISerializer& 
      operator<<(const T &value) =0;
    
    virtual ~ISerializer() { }
  };  

  template <typename T>
  class IDeserializer {
  public:
    virtual const IDeserializer& 
      operator>>(T&value) =0;
    
    virtual ~IDeserializer() { }
  };
}

#endif